/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.logiclander.whozwho.core.jaxrs.ext.base;

/**
 *
 * @author logiclander
 */
public abstract class RestAPIException extends RuntimeException {

  private static final long serialVersionUID = -8612112866442573134L;
  private final RestQueryKey queryKey;

  public RestAPIException() {
    queryKey = RestQueryKey.EMPTY_KEY;
  }

  public RestAPIException(String message) {
    super(message);
    queryKey = RestQueryKey.EMPTY_KEY;
  }

  public RestAPIException(Throwable cause) {
    super(cause);
    queryKey = RestQueryKey.EMPTY_KEY;
  }

  public RestAPIException(String message, Throwable cause) {
    super(message, cause);
    queryKey = RestQueryKey.EMPTY_KEY;
  }

  public RestAPIException(RestQueryKey queryKey) {
    super();
    this.queryKey = queryKey;
  }

  public RestAPIException(RestQueryKey queryKey, String message) {
    super(message);
    this.queryKey = queryKey;
  }

  public RestAPIException(RestQueryKey queryKey, Throwable cause) {
    super(cause);
    this.queryKey = queryKey;
  }

  public RestAPIException(RestQueryKey queryKey, String message, Throwable cause) {
    super(message, cause);
    this.queryKey = queryKey;
  }

  public RestQueryKey getQueryKey() {
    return queryKey;
  }

  public abstract int getStatusCode();

  public abstract String getStatusMessage();
}
